/*============================================================================*/
/*                        Tortoise Team			                              */
/*============================================================================*/
/*                        OBJECT SPECIFICATION                                */
/*============================================================================*
* C Source:         %APP_Btn.c%
* Instance:         RPL_1
* %version:         1.0 %
* %created_by:      Andres Torres Garcia %
* %date_created:    Thursday Sep  27 18:32:03 2012 %
*=============================================================================*/
/* DESCRIPTION : C source file for the application layer of the button.       */
/*============================================================================*/
/* FUNCTION COMMENT : This file defines the functions of the application layer*/
/*	of the button															  */
/*                                                                            */
/*============================================================================*/
/*                               OBJECT HISTORY                               */
/*============================================================================*/
/*  REVISION |   DATE      |                               |      AUTHOR      */
/*----------------------------------------------------------------------------*/
/*  1.0      | 27/09/2012  |                               | Andres Torres    */
/* Integration under Continuus CM                                             */
/*============================================================================*/

/* Includes */
/* -------- */
#include "HAL_Btn.h"
#include "APP_Btn.h"

/* Functions macros, constants, types and datas         */
/* ---------------------------------------------------- */
/* Functions macros */

/*==================================================*/ 
/* Definition of constants                          */
/*==================================================*/ 


/*======================================================*/ 
/* Definition of RAM variables                          */
/*======================================================*/ 

/*======================================================*/ 
/* close variable declaration sections                  */
/*======================================================*/ 

/* Private defines */

/* Private functions prototypes */
/* ---------------------------- */


/* Exported functions prototypes */
/* ----------------------------- */

T_UBYTE IsBtnStatePsh(void);
void vfnInit_Btn_State(void);
void vfnInitBtnTurnBackWheels(void);
T_UBYTE vfnIsBtnTurnBackWheelsPsh(void);
void vfnInitBtnServoCalib(void);

/* Inline functions */
/* ---------------- */

/* Private functions */
/* ----------------- */
/**************************************************************
 *  Name                 : 
 *  Description          :
 *  Parameters           :  [Input, Output, Input / output]
 *  Return               :
 *  Critical/explanation :    No
 **************************************************************/

/* Exported functions */
/* ------------------ */

/**************************************************************
 *  Name                 : 	IsBtnStatePsh
 *  Description          :	Check if the button of the machine state is pushed.
 *  Parameters           :  [Input, Output, Input / output]
 *  Return               :	T_UBYTE
 *  Critical/explanation :    No
 **************************************************************/
///////////////////////////////////////////////////////////////////////
/// \brief Check if the button of the machine state is pushed.
/// \return true if it is pushed, otherwise false.
/////////////////////////////////////////////////////////////////////////
T_UBYTE IsBtnStatePsh(void)
{
	 return Check_Btn_Press(BTN_STATE);
}

/**************************************************************
 *  Name                 : 	vfnInit_Btn_State
 *  Description          :	Initialize the button of the machine state.
 *  Parameters           :  [Input, Output, Input / output]
 *  Return               :	void
 *  Critical/explanation :    No
 **************************************************************/
///////////////////////////////////////////////////////////////////////
/// \brief Initialize the button of the machine state.
/////////////////////////////////////////////////////////////////////////
void vfnInit_Btn_State(void)
{
	vfnInit_Btn(BTN_STATE);
}

/**************************************************************
*  Name                 : 	vfnInitBtnTurnBackWheels
*  Description          :	Initialize the button for turn off or on the back wheels.
*  Parameters           :  [Input, Output, Input / output]
*  Return               :	void
*  Critical/explanation :    No
**************************************************************/
///////////////////////////////////////////////////////////////////////
/// \brief Initialize the button for turn off or on the back wheels.
/////////////////////////////////////////////////////////////////////////
void vfnInitBtnTurnBackWheels(void)
{
	vfnInit_Btn(BTN_TURN_BACK);
}

/**************************************************************
*  Name                 : 	vfnInitBtnServoCalib
*  Description          :	Initialize the button for calibrate the front wheels.
*  Parameters           :  [Input, Output, Input / output]
*  Return               :	void
*  Critical/explanation :    No
**************************************************************/
///////////////////////////////////////////////////////////////////////
/// \brief Initialize the button for calibrate the front wheels.
/////////////////////////////////////////////////////////////////////////
void vfnInitBtnServoCalib(void)
{
	vfnInit_Btn(BTN_SERVO_CALIB);
}

/**************************************************************
*  Name                 : 	vfnIsBtnTurnBackWheelsPsh
*  Description          :	Check if the button for turn on or off the back wheels is pushed.
*  Parameters           :  [Input, Output, Input / output]
*  Return               :	true if it is pushed, otherwise false.
*  Critical/explanation :    No
**************************************************************/
///////////////////////////////////////////////////////////////////////
/// \brief Check if the button for turn on or off the back wheels is pushed.
/// \return true if it is pushed, otherwise false.
/////////////////////////////////////////////////////////////////////////
T_UBYTE vfnIsBtnTurnBackWheelsPsh(void)
{
	return Check_Btn_Press(BTN_TURN_BACK);
}